
package com.google.project.client.Service;

import java.util.List;

import com.google.gwt.user.client.rpc.AsyncCallback;
import com.google.project.shared.ProjectDTO;
import com.google.project.shared.ProjectTaskDTO;
import com.google.project.shared.SubConstructorDTO;


public interface ProjectServiceAsync {

	void addProject(ProjectDTO project, AsyncCallback<ProjectDTO> callback);

	void getProjectList(AsyncCallback<List<ProjectDTO>> callback);

	void deleteProject(String id, AsyncCallback<Void> callback);

	void updateProject(ProjectDTO projectDTO, AsyncCallback<Void> callback);

	void getProjectById(String projectId, AsyncCallback<ProjectDTO> callback);

	void searchProjectList(int status, String projectName, Long startDate,
			Long finishDate, AsyncCallback<List<ProjectDTO>> callback);

	void getProjectObject(String projectId, AsyncCallback<ProjectDTO> callback);

	void getListSubContructor(String projectId,
			AsyncCallback<List<SubConstructorDTO>> callback);

	void getListTask(String projectId,
			AsyncCallback<List<ProjectTaskDTO>> callback);

	
	void deleteProjectList(List<ProjectDTO> list, AsyncCallback<Void> callback);

	void updateProjectForClose(ProjectDTO data, AsyncCallback<Void> callback);

}
